lexer grammar SyntaxLexer;

//----------------------------------------------------------------------------
// keyword
//----------------------------------------------------------------------------
//キー区分(tblSyntax.KeyKBN) = 0:ｷｰﾜｰﾄﾞ 
KW_ACCEPT                 : 'ACCEPT'
                        ;
KW_ACCESS                 : 'ACCESS'
                        ;
KW_ADD                 : 'ADD'
                        ;
KW_ADDRESS                 : 'ADDRESS'
                        ;
KW_ADVANCING                 : 'ADVANCING'
                        ;
KW_AFTER                 : 'AFTER'
                        ;
KW_ASCENDING                 : 'ASCENDING'
                        ;
KW_ALL                 : 'ALL'
                        ;
KW_ALLOCATE                 : 'ALLOCATE'
                        ;
KW_ALPHABET                 : 'ALPHABET'
                        ;
KW_ALPHABETIC                 : 'ALPHABETIC'
                        ;
KW_ALPHABETIC_LOWER                 : 'ALPHABETIC-LOWER'
                        ;
KW_ALPHABETIC_UPPER                 : 'ALPHABETIC-UPPER'
                        ;
KW_ALSO                 : 'ALSO'
                        ;
KW_ALTER                 : 'ALTER'
                        ;
KW_ALTERNATE                 : 'ALTERNATE'
                        ;
KW_AND                 : 'AND'
                        ;
KW_ANY                 : 'ANY'
                        ;
KW_APPLY                 : 'APPLY'
                        ;
KW_ARE                 : 'ARE'
                        ;
KW_AREA                 : 'AREA'
                        ;
KW_AREAS                 : 'AREAS'
                        ;
KW_ASSIGN                 : 'ASSIGN'
                        ;
KW_AS                 : 'AS'
                        ;
KW_AT                 : 'AT'
                        ;
KW_ATTRIBUTE                 : 'ATTRIBUTE'
                        ;
KW_ATTRIBUTES                 : 'ATTRIBUTES'
                        ;
KW_BEFORE                 : 'BEFORE'
                        ;
KW_BINARY                 : 'BINARY'
                        ;
KW_BLANK                 : 'BLANK'
                        ;
KW_BLOCK                 : 'BLOCK'
                        ;
KW_BOOL                 : 'BOOL'
                        ;
KW_BOOLEAN                 : 'BOOLEAN'
                        ;
KW_BOTTOM                 : 'BOTTOM'
                        ;
KW_BY                 : 'BY'
                        ;
KW_BYTE_LENGTH                 : 'BYTE-LENGTH'
                        ;
KW_CALL                 : 'CALL'
                        ;
KW_CANCEL                 : 'CANCEL'
                        ;
KW_CHARACTER                 : 'CHARACTER'
                        ;
KW_CHARACTERS                 : 'CHARACTERS'
                        ;
KW_CICS                 : 'CICS'
                        ;
KW_CLASS                 : 'CLASS'
                        ;
KW_CLASS_ID                 : 'CLASS-ID'
                        ;
KW_CLOSE                 : 'CLOSE'
                        ;
KW_COBOL                 : 'COBOL'
                        ;
KW_CODE_SET                 : 'CODE-SET'
                        ;
KW_COLLATING                 : 'COLLATING'
                        ;
KW_COMMA                 : 'COMMA'
                        ;
KW_COMMON                 : 'COMMON'
                        ;
KW_COMP                 : 'COMP'
                        ;
KW_COMP_1                 : 'COMP-1'
                        ;
KW_COMP_2                 : 'COMP-2'
                        ;
KW_COMP_3                 : 'COMP-3'
                        ;
KW_COMP_4                 : 'COMP-4'
                        ;
KW_COMP_5                 : 'COMP-5'
                        ;
KW_COMPUTATIONAL                 : 'COMPUTATIONAL'
                        ;
KW_COMPUTATIONAL_1                 : 'COMPUTATIONAL-1'
                        ;
KW_COMPUTATIONAL_2                 : 'COMPUTATIONAL-2'
                        ;
KW_COMPUTATIONAL_3                 : 'COMPUTATIONAL-3'
                        ;
KW_COMPUTATIONAL_4                 : 'COMPUTATIONAL-4'
                        ;
KW_COMPUTATIONAL_5                 : 'COMPUTATIONAL-5'
                        ;
KW_COMPUTE                 : 'COMPUTE'
                        ;
KW_CONFIGURATION                 : 'CONFIGURATION'
                        ;
KW_CONTAINS                 : 'CONTAINS'
                        ;
KW_CONTENT                 : 'CONTENT'
                        ;
KW_CONTINUE                 : 'CONTINUE'
                        ;
KW_CONVERTING                 : 'CONVERTING'
                        ;
KW_CORR                 : 'CORR'
                        ;
KW_CORRESPONDING                 : 'CORRESPONDING'
                        ;
KW_COUNT                 : 'COUNT'
                        ;
KW_CURRENCY                 : 'CURRENCY'
                        ;
KW_CYCLE                 : 'CYCLE'
                        ;
KW_DATA                 : 'DATA'
                        ;
KW_DATE                 : 'DATE'
                        ;
KW_DAY                 : 'DAY'
                        ;
KW_DAY_OF_WEEK                 : 'DAY-OF-WEEK'
                        ;
KW_DBCS                 : 'DBCS'
                        ;
KW_DEBUGGING                 : 'DEBUGGING'
                        ;
KW_DECIMAL_POINT                 : 'DECIMAL-POINT'
                        ;
KW_DECLARATIVE                 : 'DECLARATIVE'
                        ;
KW_DECLARATIVES                 : 'DECLARATIVES'
                        ;
KW_DEFAULT                 : 'DEFAULT'
                        ;
KW_DELETE                 : 'DELETE'
                        ;
KW_DELIMITED                 : 'DELIMITED'
                        ;
KW_DELIMITER                 : 'DELIMITER'
                        ;
KW_DEPENDING                 : 'DEPENDING'
                        ;
KW_DESCENDING                 : 'DESCENDING'
                        ;
KW_DETAIL                 : 'DETAIL'
                        ;
KW_DISPLAY                 : 'DISPLAY'
                        ;
KW_DISPLAY_1                 : 'DISPLAY-1'
                        ;
KW_DIVIDE                 : 'DIVIDE'
                        ;
KW_DIVISION                 : 'DIVISION'
                        ;
KW_DOWN                 : 'DOWN'
                        ;
KW_DUPLICATES                 : 'DUPLICATES'
                        ;
KW_DYNAMIC                 : 'DYNAMIC'
                        ;
KW_EBCDIC                 : 'EBCDIC'
                        ;
KW_ELEMENT                 : 'ELEMENT'
                        ;
KW_ELSE                 : 'ELSE'
                        ;
KW_END                 : 'END'
                        ;
KW_END_ADD                 : 'END-ADD'
                        ;
KW_END_CALL                 : 'END-CALL'
                        ;
KW_END_COMPUTE                 : 'END-COMPUTE'
                        ;
KW_END_DELETE                 : 'END-DELETE'
                        ;
KW_END_DIVIDE                 : 'END-DIVIDE'
                        ;
KW_END_EVALUATE                 : 'END-EVALUATE'
                        ;
KW_END_EXEC                 : 'END-EXEC'
                        ;
KW_END_IF                 : 'END-IF'
                        ;
KW_END_INVOKE                 : 'END-INVOKE'
                        ;
KW_END_JSON                 : 'END-JSON'
                        ;
KW_END_MULTIPLY                 : 'END-MULTIPLY'
                        ;
KW_END_OF_PAGE                 : 'END-OF-PAGE'
                        ;
KW_END_PERFORM                 : 'END-PERFORM'
                        ;
KW_END_READ                 : 'END-READ'
                        ;
KW_END_RETURN                 : 'END-RETURN'
                        ;
KW_END_REWRITE                 : 'END-REWRITE'
                        ;
KW_END_SEARCH                 : 'END-SEARCH'
                        ;
KW_END_START                 : 'END-START'
                        ;
KW_END_STRING                 : 'END-STRING'
                        ;
KW_END_SUBTRACT                 : 'END-SUBTRACT'
                        ;
KW_END_UNSTRING                 : 'END-UNSTRING'
                        ;
KW_END_WRITE                 : 'END-WRITE'
                        ;
KW_END_XML                 : 'END-XML'
                        ;
KW_ENTRY                 : 'ENTRY'
                        ;
KW_ENVIRONMENT                 : 'ENVIRONMENT'
                        ;
KW_EQUAL                 : 'EQUAL'
                        ;
KW_EOP                 : 'EOP'
                        ;
KW_ERROR                 : 'ERROR'
                        ;
KW_EVALUATE                 : 'EVALUATE'
                        ;
KW_EVERY                 : 'EVERY'
                        ;
KW_EXCEPTION                 : 'EXCEPTION'
                        ;
KW_EXEC                 : 'EXEC'
                        ;
KW_EXIT                 : 'EXIT'
                        ;
KW_EXTEND                 : 'EXTEND'
                        ;
KW_EXTERNAL                 : 'EXTERNAL'
                        ;
KW_FACTORY                 : 'FACTORY'
                        ;
KW_FALSE                 : 'FALSE'
                        ;
KW_FD                 : 'FD'
                        ;
KW_FILE                 : 'FILE'
                        ;
KW_FILE_CONTROL                 : 'FILE-CONTROL'
                        ;
KW_FILLER                 : 'FILLER'
                        ;
KW_FIRST                 : 'FIRST'
                        ;
KW_FIXED                 : 'FIXED'
                        ;
KW_FOR                 : 'FOR'
                        ;
KW_FOOTING                 : 'FOOTING'
                        ;
KW_FREE                 : 'FREE'
                        ;
KW_FROM                 : 'FROM'
                        ;
KW_FUNCTION                 : 'FUNCTION'
                        ;
KW_FUNCTION_POINTER                 : 'FUNCTION-POINTER'
                        ;
KW_GENERATE                 : 'GENERATE'
                        ;
KW_GLOBAL                 : 'GLOBAL'
                        ;
KW_GIVING                 : 'GIVING'
                        ;
KW_GO                 : 'GO'
                        ;
KW_GOBACK                 : 'GOBACK'
                        ;
KW_GREATER                 : 'GREATER'
                        ;
KW_GROUP_USAGE                 : 'GROUP-USAGE'
                        ;
KW_HIGH_VALUE                 : 'HIGH-VALUE'
                        ;
KW_HIGH_VALUES                 : 'HIGH-VALUES'
                        ;
KW_ID                 : 'ID'
                        ;
KW_IDENTIFICATION                 : 'IDENTIFICATION'
                        ;
KW_IF                 : 'IF'
                        ;
KW_IN                 : 'IN'
                        ;
KW_INDEX                 : 'INDEX'
                        ;
KW_INDEXED                 : 'INDEXED'
                        ;
KW_INHERITS                 : 'INHERITS'
                        ;
KW_INITIAL                 : 'INITIAL'
                        ;
KW_INITIALIZE                 : 'INITIALIZE'
                        ;
KW_INITIALIZED                 : 'INITIALIZED'
                        ;
KW_INPUT                 : 'INPUT'
                        ;
KW_INPUT_OUTPUT                 : 'INPUT-OUTPUT'
                        ;
KW_INSPECT                 : 'INSPECT'
                        ;
KW_INTO                 : 'INTO'
                        ;
KW_INTRINSIC                 : 'INTRINSIC'
                        ;
KW_INVALID                 : 'INVALID'
                        ;
KW_INVOKE                 : 'INVOKE'
                        ;
KW_I_O                 : 'I-O'
                        ;
KW_I_O_CONTROL                 : 'I-O-CONTROL'
                        ;
KW_IS                 : 'IS'
                        ;
KW_JSON                 : 'JSON'
                        ;
KW_JUST                 : 'JUST'
                        ;
KW_JUSTIFIED                 : 'JUSTIFIED'
                        ;
KW_KANJI                 : 'KANJI'
                        ;
KW_KEY                 : 'KEY'
                        ;
KW_LABEL                 : 'LABEL'
                        ;
KW_LEADING                 : 'LEADING'
                        ;
KW_LEFT                 : 'LEFT'
                        ;
KW_LENGTH                 : 'LENGTH'
                        ;
KW_LESS                 : 'LESS'
                        ;
KW_LIMIT                 : 'LIMIT'
                        ;
KW_LINAGE                 : 'LINAGE'
                        ;
KW_LINE                 : 'LINE'
                        ;
KW_LINES                 : 'LINES'
                        ;
KW_LINKAGE                 : 'LINKAGE'
                        ;
KW_LOC                 : 'LOC'
                        ;
KW_LOCK                 : 'LOCK'
                        ;
KW_LOCAL_STORAGE                 : 'LOCAL-STORAGE'
                        ;
KW_LOW_VALUE                 : 'LOW-VALUE'
                        ;
KW_LOW_VALUES                 : 'LOW-VALUES'
                        ;
KW_MEMORY                 : 'MEMORY'
                        ;
KW_MERGE                 : 'MERGE'
                        ;
KW_METHOD                 : 'METHOD'
                        ;
KW_METHOD_ID                 : 'METHOD-ID'
                        ;
KW_MODE                 : 'MODE'
                        ;
KW_MODULES                 : 'MODULES'
                        ;
KW_MOVE                 : 'MOVE'
                        ;
KW_MULTIPLE                 : 'MULTIPLE'
                        ;
KW_MULTIPLY                 : 'MULTIPLY'
                        ;
KW_NAME                 : 'NAME'
                        ;
KW_NAMESPACE                 : 'NAMESPACE'
                        ;
KW_NAMESPACE_PREFIX                 : 'NAMESPACE-PREFIX'
                        ;
KW_NATIVE                 : 'NATIVE'
                        ;
KW_NATIONAL                 : 'NATIONAL'
                        ;
KW_NEGATIVE                 : 'NEGATIVE'
                        ;
KW_NEW                 : 'NEW'
                        ;
KW_NEXT                 : 'NEXT'
                        ;
KW_NO                 : 'NO'
                        ;
KW_NOT                 : 'NOT'
                        ;
KW_NUMERIC                 : 'NUMERIC'
                        ;
KW_NONNUMERIC                 : 'NONNUMERIC'
                        ;
KW_NULL                 : 'NULL'
                        ;
KW_NULLS                 : 'NULLS'
                        ;
KW_OBJECT                 : 'OBJECT'
                        ;
KW_OBJECT_COMPUTER                 : 'OBJECT-COMPUTER'
                        ;
KW_OCCURS                 : 'OCCURS'
                        ;
KW_OUTPUT                 : 'OUTPUT'
                        ;
KW_OF                 : 'OF'
                        ;
KW_OFF                 : 'OFF'
                        ;
KW_ON                 : 'ON'
                        ;
KW_OMITTED                 : 'OMITTED'
                        ;
KW_OPEN                 : 'OPEN'
                        ;
KW_OR                 : 'OR'
                        ;
KW_ORDER                 : 'ORDER'
                        ;
KW_ORGANIZATION                 : 'ORGANIZATION'
                        ;
KW_OPTIONAL                 : 'OPTIONAL'
                        ;
KW_OTHER                 : 'OTHER'
                        ;
KW_OVERFLOW                 : 'OVERFLOW'
                        ;
KW_PACKED_DECIMAL                 : 'PACKED-DECIMAL'
                        ;
KW_PADDING                 : 'PADDING'
                        ;
KW_PAGE                 : 'PAGE'
                        ;
KW_PARAGRAPH                 : 'PARAGRAPH'
                        ;
KW_PARSE                 : 'PARSE'
                        ;
KW_PASSWORD                 : 'PASSWORD'
                        ;
KW_PERFORM                 : 'PERFORM'
                        ;
KW_PIC                 : 'PIC' -> pushMode(PIC_CLAUSE)
                        ;
KW_PICTURE                 : 'PICTURE' -> pushMode(PIC_CLAUSE)
                        ;
KW_POINTER                 : 'POINTER'
                        ;
KW_POINTER_32                 : 'POINTER-32'
                        ;
KW_POSITION                 : 'POSITION'
                        ;
KW_POSITIVE                 : 'POSITIVE'
                        ;
KW_PROCEDURE                 : 'PROCEDURE'
                        ;
KW_PROCEDURE_POINTER                 : 'PROCEDURE-POINTER'
                        ;
KW_PROCEDURES                 : 'PROCEDURES'
                        ;
KW_PROCEED                 : 'PROCEED'
                        ;
KW_PROCESSING                 : 'PROCESSING'
                        ;
KW_PROGRAM                 : 'PROGRAM'
                        ;
KW_PROGRAM_ID                 : 'PROGRAM-ID'
                        ;
KW_QUOTE                 : 'QUOTE'
                        ;
KW_QUOTES                 : 'QUOTES'
                        ;
KW_RANDOM                 : 'RANDOM'
                        ;
KW_READ                 : 'READ'
                        ;
KW_RECORD                 : 'RECORD'
                        ;
KW_RECORDING                 : 'RECORDING'
                        ;
KW_RECORDS                 : 'RECORDS'
                        ;
KW_RECURSIVE                 : 'RECURSIVE'
                        ;
KW_REDEFINES                 : 'REDEFINES'
                        ;
KW_REEL                 : 'REEL'
                        ;
KW_REFERENCE                 : 'REFERENCE'
                        ;
KW_RELATIVE                 : 'RELATIVE'
                        ;
KW_RELEASE                 : 'RELEASE'
                        ;
KW_REMAINDER                 : 'REMAINDER'
                        ;
KW_REMOVAL                 : 'REMOVAL'
                        ;
KW_RENAMES                 : 'RENAMES'
                        ;
KW_RERUN                 : 'RERUN'
                        ;
KW_RETURN                 : 'RETURN'
                        ;
KW_REPLACING                 : 'REPLACING'
                        ;
KW_REPOSITORY                 : 'REPOSITORY'
                        ;
KW_RESERVE                 : 'RESERVE'
                        ;
KW_RETURNING                 : 'RETURNING'
                        ;
KW_REVERSED                 : 'REVERSED'
                        ;
KW_REWIND                 : 'REWIND'
                        ;
KW_REWRITE                 : 'REWRITE'
                        ;
KW_RIGHT                 : 'RIGHT'
                        ;
KW_ROUNDED                 : 'ROUNDED'
                        ;
KW_RUN                 : 'RUN'
                        ;
KW_SD                 : 'SD'
                        ;
KW_SAME                 : 'SAME'
                        ;
KW_SEARCH                 : 'SEARCH'
                        ;
KW_SECTION                 : 'SECTION'
                        ;
KW_SEGMENT_LIMIT                 : 'SEGMENT-LIMIT'
                        ;
KW_SELECT                 : 'SELECT'
                        ;
KW_SELF                 : 'SELF'
                        ;
KW_SENTENCE                 : 'SENTENCE'
                        ;
KW_SEPARATE                 : 'SEPARATE'
                        ;
KW_SEQUENCE                 : 'SEQUENCE'
                        ;
KW_SEQUENTIAL                 : 'SEQUENTIAL'
                        ;
KW_SET                 : 'SET'
                        ;
KW_SIGN                 : 'SIGN'
                        ;
KW_SIZE                 : 'SIZE'
                        ;
KW_SORT                 : 'SORT'
                        ;
KW_SORT_MERGE                 : 'SORT-MERGE'
                        ;
KW_SOURCE_COMPUTER                 : 'SOURCE-COMPUTER'
                        ;
KW_SPACE                 : 'SPACE'
                        ;
KW_SPACES                 : 'SPACES'
                        ;
KW_SPECIAL_NAMES                 : 'SPECIAL-NAMES'
                        ;
KW_SQL                 : 'SQL'
                        ;
KW_SQLIMS                 : 'SQLIMS'
                        ;
KW_STANDARD                 : 'STANDARD'
                        ;
KW_STANDARD_1                 : 'STANDARD-1'
                        ;
KW_STANDARD_2                 : 'STANDARD-2'
                        ;
KW_START                 : 'START'
                        ;
KW_STATUS                 : 'STATUS'
                        ;
KW_STOP                 : 'STOP'
                        ;
KW_STRING                 : 'STRING'
                        ;
KW_SUBTRACT                 : 'SUBTRACT'
                        ;
KW_SUPER                 : 'SUPER'
                        ;
KW_SUPPRESS                 : 'SUPPRESS'
                        ;
KW_SYMBOL                 : 'SYMBOL'
                        ;
KW_SYMBOLIC                 : 'SYMBOLIC'
                        ;
KW_SYNC                 : 'SYNC'
                        ;
KW_SYNCHRONIZED                 : 'SYNCHRONIZED'
                        ;
KW_TALLYING                 : 'TALLYING'
                        ;
KW_TAPE                 : 'TAPE'
                        ;
KW_TEST                 : 'TEST'
                        ;
KW_THAN                 : 'THAN'
                        ;
KW_THEN                 : 'THEN'
                        ;
KW_THROUGH                 : 'THROUGH'
                        ;
KW_THRU                 : 'THRU'
                        ;
KW_TIME                 : 'TIME'
                        ;
KW_TIMES                 : 'TIMES'
                        ;
KW_TO                 : 'TO'
                        ;
KW_TOP                 : 'TOP'
                        ;
KW_TRAILING                 : 'TRAILING'
                        ;
KW_TRUE                 : 'TRUE'
                        ;
KW_TYPE                 : 'TYPE'
                        ;
KW_UNIT                 : 'UNIT'
                        ;
KW_UNBOUNDED                 : 'UNBOUNDED'
                        ;
KW_UNTIL                 : 'UNTIL'
                        ;
KW_UNSTRING                 : 'UNSTRING'
                        ;
KW_UP                 : 'UP'
                        ;
KW_UPON                 : 'UPON'
                        ;
KW_USAGE                 : 'USAGE'
                        ;
KW_USE                 : 'USE'
                        ;
KW_USING                 : 'USING'
                        ;
KW_UTF_8                 : 'UTF-8'
                        ;
KW_VALIDATING                 : 'VALIDATING'
                        ;
KW_VALUE                 : 'VALUE'
                        ;
KW_VALUES                 : 'VALUES'
                        ;
KW_VARYING                 : 'VARYING'
                        ;
KW_VOLATILE                 : 'VOLATILE'
                        ;
KW_WHEN                 : 'WHEN'
                        ;
KW_WITH                 : 'WITH'
                        ;
KW_WRITE                 : 'WRITE'
                        ;
KW_WRITE_ONLY                 : 'WRITE-ONLY'
                        ;
KW_WORDS                 : 'WORDS'
                        ;
KW_WORKING_STORAGE                 : 'WORKING-STORAGE'
                        ;
KW_XML                 : 'XML'
                        ;
KW_XML_DECLARATION                 : 'XML-DECLARATION'
                        ;
KW_XML_SCHEMA                 : 'XML-SCHEMA'
                        ;
KW_YYYYDDD                 : 'YYYYDDD'
                        ;
KW_YYYYMMDD                 : 'YYYYMMDD'
                        ;
KW_ZERO                 : 'ZERO'
                        ;
KW_ZEROES                 : 'ZEROES'
                        ;
KW_ZEROS                 : 'ZEROS'
                        ;
//----------------------------------------------------------------------------
// OPERATORS
//----------------------------------------------------------------------------
//キー区分(tblSyntax.KeyKBN) = 1:区切りｷｰﾜｰﾄﾞ 
PLUS              : '+'   ;
MINUS             : '-'   ;
STAR              : '*'   ;
SLASH             : '/'   ;
ASSIGN            : ':='  ;
COMMA             : ','   ;
SEMI              : ';'   ;
COLON             : ':'   ;
EQUAL             : '='   ;
NOT_EQUAL         : '<>'  ;
LT                : '<'   ;
LE                : '<='  ;
GE                : '>='  ;
GT                : '>'   ;
LPAREN            : '('   ;
RPAREN            : ')'   ;
LBRACK            : '['   ; // line_tab[line]
LBRACK2           : '(.'  ; // line_tab(.line.)
RBRACK            : ']'   ;
RBRACK2           : '.)'  ;
POINTER2          : '^'   ;
AT2               : '@'   ;
DOT               : '.'   ;// ('.' {$setType(DOTDOT);})?  ;
DOTDOT            : '..'  ;
LCURLY            : '{'   ;
RCURLY            : '}'   ;     
AMBER             : '&'   ;
DOUBLEAT          : '@@'  ;
DOLLAR            : '$'   ;
//----------------------------------------------------------------------------
// Literal
//----------------------------------------------------------------------------
StringLiteral           : SingleQuotedString
                        | DoubleQuotedString
                        ;
DbcsLiteral             : ('G' | 'NX' | 'N') StringLiteral
                        ;
Utf8Literal             : ('UX' | 'U') StringLiteral
                        ;
HexNumber               : 'X' StringLiteral
                        ;
NullTerminated          : 'Z' StringLiteral
                        ;
IntegerLiteral          : ('+'|'-')?Digit+
                        ;
DecimalLiteral          : ('+'|'-')?Digit*('.')Digit+
                        ;
fragment
SingleQuotedString      : '\'' ('\'\'' | ~('\''))* '\''
                        ;
fragment
DoubleQuotedString      : '"' ('""' | ~('"'))* '"'
                        ;
//----------------------------------------------------------------------------
// ID
//----------------------------------------------------------------------------
//キー区分(tblSyntax.KeyKBN) = 54:ｱﾙﾌｧﾍﾞｯﾄ単語始る文字はA-Zまたはa-zの範囲内である）
Identifier              : (Alpha | '_' | Digit) (Alpha | Digit | '_' | '-')*
                        ;  
                        
fragment
Alpha                   : 'a'..'z'
                        | 'A'..'Z'
                        | '\u0080'..'\uFFFE' ~('\uFEFF') //ADDED unicode support
                        ;               
                        
fragment
Digit                   : '0'..'9'
                        ;
//----------------------------------------------------------------------------
// OTHER
//----------------------------------------------------------------------------
EOL                     : ('\r\n'|'\r'|'\n')+
                        ;
WS                      : (' '|'\t'|'\f')+ -> skip
                        ;
UnicodeBOM              : '\uFEFF' -> skip 
                        ;
mode PIC_CLAUSE;
PicString               : ([ABCDEGNPRSUVXZ90]+('('[0-9]+')')?)+ -> popMode
                        ;
PicWS                     : (' '|'\t'|'\f')+ -> skip
                        ;
ANY                     : . 
                        ;